;;;
;;; First, load a number of LKB-specific settings; typically no need to look
;;; too closely here
;;;
(lkb-load-lisp (parent-directory) "Version.lsp" t)
(setf *grammar-directory* (parent-directory))
(lkb-load-lisp (this-directory) "globals.lsp")
(lkb-load-lisp (this-directory) "user-fns.lsp")
(load-lkb-preferences (this-directory) "user-prefs.lsp")

;;;
;;; Optionally, load a set of irregular morphological patterns
;;;
(load-irregular-spellings (lkb-pathname (parent-directory) "irregs.tab"))

;;;
;;; Now the core grammar: to preserve the fiction of separating the matrix 
;;; from language-specific parts, we recommend at least one additional file;
;;; larger grammars have ended up organizing files roughly by content, e.g.
;;; fundamental types (similar to what comes with the matrix already), types
;;; for constructions, lexical types, semantic types, etc.  If you have 
;;; multiple such files, there should be a line for each in the following.
;;; Here we have just included matrix.tdl and one other grammar file
;;; `my_language.tdl', which you might want to rename.
;;;
(read-tdl-type-files-aux
  (list 
   (lkb-pathname (parent-directory) "matrix.tdl")
   (lkb-pathname (parent-directory) "edo.tdl")))

;;;
;;; Next, the lexicon itself, instantiating (lexical) types of the grammar
;;; (some grammars with larger lexica organize them into multiple files).
;;;
(read-cached-lex-if-available (lkb-pathname (parent-directory) "lexicon.tdl"))

;;;
;;; Finally, the grammar rules, lexical rules (given special treatment in the
;;; parser in that they can apply _prior_ to `inflectional' rules), and the
;;; `inflectional' rules themselves (rules with an associated orthographemic
;;; alternation of the surface string).
;;;
(read-tdl-grammar-file-aux (lkb-pathname (parent-directory) "rules.tdl"))
(read-tdl-lex-rule-file-aux (lkb-pathname (parent-directory) "lrules.tdl"))
(read-morph-file-aux (lkb-pathname (parent-directory) "irules.tdl"))

;;;
;;; The `start symbol(s)' of the grammar.
;;;
(read-tdl-psort-file-aux (lkb-pathname (parent-directory) "roots.tdl"))

;;;
;;; Optionally, a set of types providing labels for nodes in parse trees
;;;
(read-tdl-parse-node-file-aux (lkb-pathname (parent-directory) "labels.tdl"))

;;;
;;; A few more LKB-specific settings, this time for MRS post-processing and
;;; generation; also, we always compute the generation index (while we have
;;; small lexica) in the hope that the generator will be used frequently.
;;;
(lkb-load-lisp (this-directory) "mrsglobals.lisp" t)
(index-for-generator)
